package cn.theten52.demo.patterns.design.structure.bridge;

/**
 * 桥模式更多的是提示我们如何组织面向对象设计的分解方式，笔者称为“三步法”。
 * ●第一步，把依赖具体变成依赖抽象。
 * ●第二步，如果同时存在多个正交的变化因素，就顺次展开，逐个抽象。
 *  每次将一个而且只有一个“变化因素”进行抽象，将依赖于“N个变化因素”的复杂性削减为依赖于“1个抽象 + （N-1）个变化因素”的复杂性。
 *  然后不断抽象，直到将N个变化因素的依赖关系全部变为N个抽象对象间“一个接一个”的依赖关系。
 * ●第三步，为每个抽象因素提供具体实现。
 *  从本质上看，桥模式解决的是对抽象中正交变化因素的进一步分解及衔接。
 *
 * @author wangjin
 * @date 2021/1/1
 */
public interface Abstraction {
    void setImpl(Impl impl);

    Impl getImpl();

    String operation();
}
